#ifndef QLSFUNC_H
#define QLSFUNC_H

#include <QWidget>

class QLsFunc
{
public:
    QLsFunc();

    /* 将窗口移动到鼠标所在的显示屏，并居中显示 */
    static void MoveWidgetToScreenWhereMouse(QWidget *w);

#ifdef Q_OS_WIN32
    /* 通过进程标题获取窗口进程ID */
    static QList<HWND> GetWindowHandleListByPID(QString str_title);

    /* 关闭WID的进程 */
    static void CloseWindowHandleByWID(WId wid);

    /**
     * 打开ppt并嵌入widget中
     *
     * 标题格式解析：
     * ppt：filename [只读] [兼容模式] - PowerPoint
     * [只读]：		只读方式打开文件时，标题会显示 [只读]
     * [兼容模式]：	高版本打开低版本格式文件时，会以兼容模式打开。此时标题会显示
     * [兼容模式]
     *
     * QDir::toNativeSeparators(filePath)：
     * Returns pathName with the '/' separators converted to separators
     * that are appropriate for the underlying operating system.
     * On Windows, toNativeSeparators("c:/winnt/system32") returns
     * "c:\winnt\system32". The returned string may be the same as the argument
     * on some operating systems, for example on Unix. This function was
     * introduced in Qt 4.2.
     *
     *
     * 如果 w 原先有布局，则清空布局和子控件
     * 由于这里无法知道上次 QWindow 的 WId
     * 所以外部线程的关闭就放在外面进行
     * 这里只做 w->layout 的清理
     */
    static WId OpenPptInsetWidget(QWidget *w, QString filePath = "");

    /**
     * 打开word并嵌入widget中
     *
     * 标题格式解析：
     * word：filename [只读] [兼容模式] - Word
     *
     * 同上
     */
    static WId OpenWordInsetWidget(QWidget *w, QString filePath = "");
#endif
};

#endif // QLSFUNC_H
